草庐IT

LeetCode - 两数之和

全部标签

LeetCode刷题第八九十周

动态规划如果某一问题有很多重叠子问题,使用动态规划是最有效的解题步骤:背包问题:01背包,完全背包,多重背包01背包:统一使用一维数组来进行遍历publicstaticvoidmain(String[]args){int[]weight={1,3,4};int[]value={15,20,30};intbagWight=4;testWeightBagProblem(weight,value,bagWight);}publicstaticvoidtestWeightBagProblem(int[]weight,int[]value,intbagWeight){intwLen=weight.len

9.20Leetcode记录

一、字符串的排列题干:输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s="abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1题解:全排列问题可采用递归的思路,固定某个位置,求出其他位置的全排列 我们可以通过交换来获得所有可能的情况。比如第一个位置上的字符,假如A和A交换,就相当于第一个位置上固定了A;假如A和B交换,B来到第一个位置,就相当于第一个位置上固定了B;假如A和C交换,C来到第一个位置,就相当于第一个位置上固定了C。递归的过程中都是同理。此外,因为可能有字符重复,我们

9.20Leetcode记录

一、字符串的排列题干:输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s="abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1题解:全排列问题可采用递归的思路,固定某个位置,求出其他位置的全排列 我们可以通过交换来获得所有可能的情况。比如第一个位置上的字符,假如A和A交换,就相当于第一个位置上固定了A;假如A和B交换,B来到第一个位置,就相当于第一个位置上固定了B;假如A和C交换,C来到第一个位置,就相当于第一个位置上固定了C。递归的过程中都是同理。此外,因为可能有字符重复,我们

二分查找-LeetCode704 简单题

LeetCode代码链接:https://leetcode.cn/problems/binary-search/题目:给定一个 n 个元素有序的(升序)整型数组 nums和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1思路这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元

二分查找-LeetCode704 简单题

LeetCode代码链接:https://leetcode.cn/problems/binary-search/题目:给定一个 n 个元素有序的(升序)整型数组 nums和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1思路这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元

每日算法之和为S的连续正数序列

JZ74和为S的连续正数序列题目小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?方法1枚举法思路算法实现从数字1开始枚举连续的数字,将其累加判断其是否等于目标,如果小于目标数则继续往后累加,如果大于目标数说明会超过,跳出,继续枚举下一个数字开始的情况(比如2,比如3),这样每次都取连续的序列,只有刚好累加和等于目标数才可以记

每日算法之和为S的连续正数序列

JZ74和为S的连续正数序列题目小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?方法1枚举法思路算法实现从数字1开始枚举连续的数字,将其累加判断其是否等于目标,如果小于目标数则继续往后累加,如果大于目标数说明会超过,跳出,继续枚举下一个数字开始的情况(比如2,比如3),这样每次都取连续的序列,只有刚好累加和等于目标数才可以记

LeetCode-400. 第N位数字

题目来源400.第N位数字题目详情给你一个整数n,请你在无限的整数序列 [1,2,3,4,5,6,7,8,9,10,11,...]中找出并返回第 n位上的数字。示例1:输入:n=3输出:3示例2:输入:n=11输出:0解释:第11位数字在序列1,2,3,4,5,6,7,8,9,10,11,...里是0,它是10的一部分。提示:1题解分析本题的解题关键是如何定位到指定字符所在的数字。通过仔细观察序列数字串,可以发现,位数为1的数字个数为9,位数为2的数字个数为90,位数为3的数字个数为900,依次类推。按照上述规律,可以进一步每种位数中包含的字符个数,它们是数字个数与位数的乘积。通过这种模拟法,

LeetCode-400. 第N位数字

题目来源400.第N位数字题目详情给你一个整数n,请你在无限的整数序列 [1,2,3,4,5,6,7,8,9,10,11,...]中找出并返回第 n位上的数字。示例1:输入:n=3输出:3示例2:输入:n=11输出:0解释:第11位数字在序列1,2,3,4,5,6,7,8,9,10,11,...里是0,它是10的一部分。提示:1题解分析本题的解题关键是如何定位到指定字符所在的数字。通过仔细观察序列数字串,可以发现,位数为1的数字个数为9,位数为2的数字个数为90,位数为3的数字个数为900,依次类推。按照上述规律,可以进一步每种位数中包含的字符个数,它们是数字个数与位数的乘积。通过这种模拟法,

leetcode 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素(简单)

一、题目大意给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。示例1:输入:head=[1,1,2]输出:[1,2]示例2:输入:head=[1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围[0,300]内-100题目数据保证链表已经按升序排列来源:力扣(LeetCode)链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路思路:如果下一个元素和当前元素的值相等,这个元素的下